Photoshop:添加当前图片名称

新觉青年

今天鬼火说要做个批量在图片中添加当前文件名称的水印,在群里面发问.俺记得 PS 的批量做的应该是很不错的.所以爽口说了 PS 完全胜任,结果打开 PS 发现其本身根本没有这个功能....遂爬文,得到了下面的代码.放到 PS 的安装目录下面的 Presets 目录下面的 Scripts 目录重启 PS 即可.在 PS 的菜单->文件->脚本里面可以找到.
这里附源码,可以修改里面的水印位置还有字体样式.addFileName.jsx

 // this script is a variation of the script addTimeStamp.js that is installed with PS7 //Copyright 2002-2003. Adobe Systems, Incorporated. All rights reserved. //All amendments Copyright Brian Price 2004(brian@secalis.com) //Check if a document is open if(documents.length > 0) { var originalRulerUnits = preferences.rulerUnits; preferences.rulerUnits = Units.PERCENT; try { var docRef = activeDocument; // Create a text layer at the front var myLayerRef = docRef.artLayers.add(); myLayerRef.kind = LayerKind.TEXT; myLayerRef.name ="Filename"; var myTextRef = myLayerRef.textItem; //Set your parameters below this line //If you wish to show the file extension, change the n to y in the line below, if not use n. var ShowExtension ="n"; // Insert any text to appear before the filename, such as your name and copyright info between the quotes. //If you do not want extra text, delete between the quotes(but leave the quotes in). var TextBefore =""; // Insert any text to appear after the filename between the quotes. //If you do not want extra text, delete between the quotes(but leave the quotes in). var TextAfter =""; // Set font size in Points myTextRef.size = 10; //Set font - use GetFontName.js to get exact name myTextRef.font ="Verdana"; //Set text colour in RGB values var newColor = new SolidColor(); newColor.rgb.red = 255; newColor.rgb.green = 255; newColor.rgb.blue = 0; myTextRef.color = newColor; // Set the position of the text - percentages from left first, then from top. myTextRef.position = new Array(5, 94); // Set the Blend Mode of the Text Layer. The name must be in CAPITALS - ie change NORMAL to DIFFERENCE. myLayerRef.blendMode = BlendMode.NORMAL; // select opacity in percentage myLayerRef.opacity = 100; // The following code strips the extension and writes tha text layer. fname = file name only di=(docRef.name).indexOf("."); fname =(docRef.name).substr(0, di); //use extension if set if(ShowExtension =="y") { fname = docRef.name } myTextRef.contents = TextBefore +"" + fname +"" + TextAfter; } catch(e) { // An error occurred. Restore ruler units, then propagate the error back // to the user preferences.rulerUnits = originalRulerUnits; throw e; } // Everything went Ok. Restore ruler units preferences.rulerUnits = originalRulerUnits; } else { alert("You must have a document open to add the filename!"); } 

添加新评论